/*
 * @Description: 描述信息
 * @Version: 版本号
 * @Author: xuebao
 * @Date: 2023-12-04 15:14:43
 * @LastEditors: renmengxue
 * @LastEditTime: 2023-12-08 14:32:27
 */
import { createApp } from 'vue'
import { createPinia } from 'pinia'

import axios from 'axios'
import router from './router'
import store from './store'
import App from './App.vue'
import 'easymde/dist/easymde.min.css'
import { useGlobalStore } from './store/global'
const app = createApp(App)

const pinia = createPinia()

app.use(store)
app.use(router)
app.use(pinia)
app.mount('#app')

// 替换 baseURL
const globalStore = useGlobalStore()
axios.defaults.baseURL = 'http://apis.imooc.com/api/'
// 下面的 icode 值是从慕课网获取的 token 值，可以在课程右侧的项目接口校验码找到
axios.interceptors.request.use(config => {
  globalStore.loading = true
  globalStore.setError({ status: false, message: '' })
  // store.commit('setLoading', true)
  // store.commit('setError', { status: false, message: '' })
  // get 请求，添加到 url 中
  config.params = { ...config.params, icode: 'CD4F6343E794196B' }
  // 其他请求，添加到 body 中
  // 如果是上传文件，添加到 FormData 中
  if (config.data instanceof FormData) {
    config.data.append('icode', 'CD4F6343E794196B')
  } else {
  // 普通的 body 对象，添加到 data 中
    config.data = { ...config.data, icode: 'CD4F6343E794196B' }
  }
  return config
})
axios.interceptors.response.use((config) => {
  globalStore.loading = false
  // store.commit('setLoading', false)
  return config
}, e => {
  const { error } = e.response.data
  console.log(error, '987678')
// 相应里面返回错误的结果了，把status设置为true
globalStore.setError({ status: true, message: error })
globalStore.loading = false
  // store.commit('setError', { status: true, message: error })
  store.commit('setLoading', false)
  return Promise.reject(e)// 返回失败的结果
})
